package com.platform.common.utils;

import org.apache.commons.lang3.StringUtils;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 静态验证方法
 * @author DavenTsang
 */
public class VerifyUtils {

    /**
     * 检查域名是否合法
     *
     * @param domain
     * @return
     */
    public static boolean isDomain(String domain) {
        String tempDomain = domain;
        try {
            if (tempDomain == null || tempDomain.length() <= 0) {
                // 域名不能为空
                return false;
            }
            if (tempDomain.length() > 67) {
                // 域名长度不能大于67位
                return false;
            }

            if (!tempDomain.contains(".")) {
                // 域名必须有“.”
                return false;
            }

            if (tempDomain.startsWith("*.")) {
                tempDomain = StringUtils.substringAfter(tempDomain, "*.");
                if (isSpecialChar(tempDomain)) {
                    // 域名不能有特殊符号
                    return false;
                } else {
                    return true;
                }
            }
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

    /**
     * 特殊符号
     *
     * @param str
     * @return
     */
    public static boolean isSpecialChar(String str) {
        String regEx = "[`~!@#$%^&*()+_=|{}':;',\\[\\]<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]";

        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(str);
        if (matcher.find()) {
            return true;
        } else {
            return false;
        }
    }


}
